Section 5 Exploratory Analysis
High-level summaries of the data.
5.1 Study Location Map
Map of the BHEF, 2021 harvest boundaries, and 2023-06 UAS flight boundaries. The UAS flights covered 719.9 acres (291.3 ha). There are 6 stands harvested in 2021 that are entirely within the UAS flight boundaries. The harvested stands range in size from 9.6 acres (3.9 ha) to 167.8 acres (67.9 ha).
# map
mapview::mapview(
bhef_boundary
, color = "black"
, lwd = 3
, alpha.regions = 0
, layer.name = "BHEF"
, label = FALSE
, legend = FALSE
, popup = FALSE
) +
mapview::mapview(
las_ctg_dta
, color = "firebrick"
, lwd = 2
, col.regions = c("firebrick")
, alpha.regions = 0.3
, layer.name = "UAS Flight Boundaries"
, label = FALSE
, legend = T
, popup = FALSE
) +
mapview::mapview(
harvests
, zcol = "treatment_type_grp"
, col.regions = viridis::turbo(n=length(unique(harvests$treatment_type_grp)))
, alpha.regions = 0.6
, layer.name = "Harvests (2021)"
, legend = T
, popup = leafpop::popupTable(
harvests
, zcol = c(
"year_id"
, "treatment_type_grp"
, "activity_name"
)
, row.numbers = FALSE
, feature.id = FALSE
)
)5.2 Digital Terrain Model (DTM) Map
Map the SfM-derived digital terrain model (DTM) (sometimes called Digital Elevation Models [DEM]) which is a topographic model of the bare Earth containing the elevation data of the terrain.
mapview::mapview(
bhef_boundary
, color = "black"
, lwd = 3
, alpha.regions = 0
, layer.name = "BHEF"
, label = FALSE
, legend = FALSE
, popup = FALSE
) +
# aggregate raster and map
mapview::mapview(
dtm_rast %>%
terra::aggregate(fact=2) %>%
`*`(3.28) %>% # transform to feet
stars::st_as_stars()
, layer.name = "elev. (ft)"
, col.regions = viridis::viridis(n=100)
, alpha.regions = 0.7
, na.color = "transparent"
)5.3 Canopy height model (CHM) Map
Map the SfM-derived canopy height model which is a measurement of the height of trees above the ground topography.
mapview::mapview(
bhef_boundary
, color = "black"
, lwd = 3
, alpha.regions = 0
, layer.name = "BHEF"
, label = FALSE
, legend = FALSE
, popup = FALSE
) +
# aggregate raster and map
mapview::mapview(
chm_rast_temp
, layer.name = "canopy ht. (ft)"
, col.regions = viridis::plasma(n=50)
, alpha.regions = 0.7
, na.color = "transparent"
) 5.4 DBH Distribution
DBH distribution of trees that are in a harvested unit. Trees within harvest unit boundaries have a DBH range from 0.1 in (0.2 cm) to 28.3 in (71.8 cm) with a median of 3.2 in (8.2 cm).
harvests_trees %>%
sf::st_drop_geometry() %>%
dplyr::select(treeID, dbh_in) %>%
dplyr::distinct() %>%
ggplot(
mapping = aes(x = dbh_in)
) +
geom_density(alpha = 0.8, fill = "navy", color = NA) +
labs(
x = "DBH (in)"
, y = "density"
, title = "SfM-derived tree DBH distribution"
) +
scale_x_continuous(breaks = scales::extended_breaks(n=20)) +
theme_light() +
theme(
legend.position = "none"
)
5.5 Height Distribution
Height distribution of trees that are in a harvested unit. Trees within harvest unit boundaries have a height range from 4.5 ft (1.4 m) to 90.9 ft (27.7 m) with a median of 16.8 ft (5.1 m).
harvests_trees %>%
sf::st_drop_geometry() %>%
dplyr::select(treeID, tree_height_ft) %>%
dplyr::distinct() %>%
ggplot(
mapping = aes(x = tree_height_ft)
) +
geom_density(alpha = 0.8, fill = "steelblue", color = NA) +
labs(
x = "Height (ft)"
, y = "density"
, title = "SfM-derived tree height distribution"
) +
scale_x_continuous(breaks = scales::extended_breaks(n=10)) +
theme_light() +
theme(
legend.position = "none"
)
5.6 Relationship between height and DBH
### plot
harvests_trees %>%
sf::st_drop_geometry() %>%
dplyr::slice_sample(prop = 0.2) %>%
dplyr::select(treeID, tree_height_ft, dbh_in) %>%
dplyr::distinct() %>%
ggplot(
mapping = aes(y=tree_height_ft, x = dbh_in)
) +
geom_point(
alpha = 0.6
, size = 0.6
, color = "gray"
) +
geom_smooth(
method = "loess"
, se = F
, span = 1
, color = "gray33"
, alpha = 0.7
) +
labs(
x = "DBH (in)"
, y = "Tree Ht. (ft)"
, title = "SfM-derived tree height and DBH relationship"
) +
theme_light() +
theme(
legend.position = "none"
)